package j2024.j202409;

import java.util.HashMap;

public class j0913 {
    /**
     * 1054. 距离相等的条形码
     * 在一个仓库里，有一排条形码，其中第 i 个条形码为 barcodes[i]。
     *
     * 请你重新排列这些条形码，使其中任意两个相邻的条形码不能相等。
     * 你可以返回任何满足该要求的答案，此题保证存在答案。
     * @param barcodes
     * @return
     */
    public int[] rearrangeBarcodes(int[] barcodes) {
        int n = barcodes.length;
        int maxCount = 0,maxVal = 0;
        int[] ret = new int[n];
        int index = 0;
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int x:barcodes){
            map.put(x,map.getOrDefault(x,0)+1);
            if(maxCount<map.get(x)){
                maxCount = map.get(x);
                maxVal = x;
            }
        }
        for (int i = 0; i < maxCount; i++) {
            ret[index] = maxVal;
            index+=2;
        }
        map.remove(maxVal);
        for (int x:map.keySet()) {
            for (int i = 0; i < map.get(x); i++) {
                if(index>=n){
                    index = 1;
                }
                ret[index] = x;
                index+=2;
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(1,2);
        map.put(2,3);
        map.put(3,2);
        for(int x:map.keySet()){
            System.out.println(x);
        }
    }
}
